package utils

import (
	"crypto/md5"
	"encoding/hex"
)

// MD5 32位MD5值
func MD5(str []byte, b ...byte) string {
	h := md5.New()
	h.Write(str)
	return hex.EncodeToString(h.Sum(b))
}

// MD5WithString 32位MD5值
func MD5WithString(str string, b ...byte) string {
	return MD5([]byte(str), b...)
}

// MD5To16 16位MD5值，取出32位的中间16位
func MD5To16(str []byte, b ...byte) string {
	return MD5(str, b...)[8:24]
}

// MD5To16WithString 16位MD5值，取出32位的中间16位
func MD5To16WithString(str string, b ...byte) string {
	return MD5([]byte(str), b...)[8:24]
}
